/*
 * @Description: 
 * @Version: 1.0
 * @Autor: 凡
 * @Date: 2023-04-06 19:58:58
 * @LastEditors: 凡
 * @LastEditTime: 2023-04-06 19:59:28
 */
import axios from 'axios'

// 配置请求基础URL地址
axios.defaults.baseURL = '/v1'
// 配置请求超时时间
axios.defaults.timeout = 3000

const username = 'jack'
const password = '123'
// 创建一个用于请求token的Axios对象
const newAxios = axios.create({baseURL:'/v1'})
// 通过axios请求拦截，将令牌放入请求头部
axios.interceptors.request.use(async config => {
    // 判断令牌是否存在，是否过期
    let token = localStorage.getItem('token')
    if (!token || Date.now() > localStorage.getItem('expires') * 1000) {
        // 重新请求
        console.log(6666)
        const { data: { code, data } } = await newAxios.post('/accesstoken', { username, password })
        if (code === 0) {
            // 更新token
            localStorage.setItem('token', data.token)
            localStorage.setItem('expires', data.expires)
            token = data.token
        }
    }
    // 请求头部携带token
    // config.headers.token = token
    config.headers.Authorization = 'Bearer ' + token
    return config
}),

/* 响应拦截 */
axios.interceptors.response.use( response => {
    // 在输出数据前，对数据进行拦截处理 
   return response.data
}, error => {
   return Promise.reject(error)
});

export default axios